package com.Maykk.Demo09;

/**
 * @ClassName: Demo
 * @Description: TODO 函数式接口作为参数
 * @Author: MaykkStar@163.com
 */
public class Demo {
    public static void main(String[] args) {

        /*
         * 匿名创建线程
         */
        // 匿名内部类
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名内部类实现的线程");
            }
        }).start();

        // 完整 Lambda
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("完整 Lambda 实现的线程");
            }
        }).start();
        // 省略 Lambda
        new Thread(() -> System.out.println("省略 Lambda 实现的线程")).start();

        /*
         * 通过方法创建线程
         */
        // 匿名内部类
        runThread(new Runnable() {
            @Override
            public void run() {
                System.out.println("方法，通过匿名内部类创建的线程");
            }
        });
        // 完整 Lambda
        runThread(() -> System.out.println("方法，通过完整 Lambda 创建的线程"));

        // 省略 Lambda
        runThread(() -> System.out.println("方法，省略 Lambda 创建线程"));

    }

    public static void runThread(Runnable run) {
        Thread thread = new Thread(run);
        thread.start();
    }
}
